{
  "type" : "object",
  "$schema" : "http://json-schema.org/draft-03/schema#",
  "properties" : {
    "interfaceCategory" : {
      "type" : "string",
      "required" : true,
      "description" : "CMP categorisation of the job associated with this file.",
      "enum" : [ "Provisioning" ]
    },
    "interfaceType" : {
      "type" : "string",
      "required" : true,
      "description" : "Sub-categorisation of the job",
      "enum" : [ "Bill Cycle Change" ]
    },
    "loadDateTime" : {
      "type" : "string",
      "required" : true,
      "description" : "Local Date Time",
      "format" : "date-time"
    },
    "version" : {
      "type" : "number",
      "required" : true,
      "description" : "The current version of the generic extract file. This must match the corresponding outbound file.",
      "maximum" : 1.0,
      "minimum" : 1.0
    },
    "actionItemNumber" : {
      "type" : "integer",
      "required" : true,
      "description" : "This value identifies a action in CMP"
    },
    "subscriptionId" : {
      "type" : "integer",
      "description" : "This value identifies a subscription in CMP"
    },
    "ocsInstances" : {
      "type" : "array",
      "required" : true,
      "description" : "The ocsInstances details",
      "items" : {
        "type" : "object",
        "properties" : {
          "ocsId" : {
            "type" : "string",
            "required" : true
          },
          "ocsInstanceId" : {
            "type" : "string",
            "required" : true
          },
          "effectiveDateTime" : {
            "type" : "string",
            "required" : true,
            "format" : "date-time"
          },
          "expiryDateTime" : {
            "type" : "string",
            "format" : "date-time"
          }
        }
      }
    },
    "sharedGroup" : {
      "type" : "object",
      "description" : "Only populated if command associated with shared group to be updated",
      "properties" : {
        "sharedGroupId" : {
          "type" : "integer",
          "description" : "Identifies the group in CMP, if applicable, that the allowance relates to"
        },
        "ocsSharedGroupId" : {
          "type" : "string",
          "description" : "Identifies the group at the network, if applicable, that the allowance relates to"
        }
      }
    }
  }
}